﻿// -----------------------------------------------------------------------
// <copyright file="Books.cs" company="rhythm divine">
// TODO: Update copyright text.
// </copyright>
// -----------------------------------------------------------------------

namespace BookManager.Models
{
    #region Imports
    using System;
    using System.Xml.Serialization;
    using CommonUtilities.Util;
    #endregion Imports

    /// <summary>
    /// TODO: Update summary.
    /// </summary>
    public class Book : BaseViewModel
    {
        #region Properties
        private string isbn;
        [XmlElement("ISBN")]
        public string Isbn
        {
            get { return isbn; }
            set { isbn = value; }
        }

        private string title;
        [XmlElement("Title")]
        public string Title
        {
            get { return title; }
            set { title = value; RaisePropertyChanged("Title"); }
        }

        private string titleMod;
        [XmlElement("titlemod")]
        public string TitleMod
        {
            get { return titleMod; }
            set { titleMod = value; RaisePropertyChanged("TitleMod"); }
        }

        private string barcode;
        [XmlElement("Barcode")]
        public string Barcode
        {
            get { return barcode; }
            set { barcode = value; }
        }

        private string specialEdition;
        [XmlElement("Special_Edition")]
        public string SpecialEdition
        {
            get { return specialEdition; }
            set { specialEdition = value; RaisePropertyChanged("SpecialEdition"); }
        }

        private string pageCount;
        [XmlElement("Number_of_Pages")]
        public string PageCount
        {
            get { return pageCount; }
            set { pageCount = value; }
        }

        private string publisher;
        [XmlElement("Publisher")]
        public string Publisher
        {
            get { return publisher; }
            set { publisher = value; RaisePropertyChanged("Publisher"); }
        }

        private string publisherLocation;
        [XmlElement("Publisher_Location")]
        public string PublisherLocation
        {
            get { return publisherLocation; }
            set { publisherLocation = value; }
        }

        private string printingCountry;
        [XmlElement("Place_of_Printing")]
        public string PrintingCountry
        {
            get { return printingCountry; }
            set { printingCountry = value; }
        }

        private string imageChanged;
        [XmlElement("imagechanged")]
        public string ImageChanged
        {
            get { return imageChanged; }
            set { imageChanged = value; }
        }

        private string language;
        [XmlElement("Language")]
        public string Language
        {
            get { return language; }
            set { language = value; RaisePropertyChanged("Language"); }
        }

        private string storageLocation;
        [XmlElement("Storage_Location")]
        public string StorageLocation
        {
            get { return storageLocation; }
            set { storageLocation = value; RaisePropertyChanged("StorageLocation"); }
        }

        private string description;
        [XmlElement("descmod")]
        public string Description
        {
            get { return description; }
            set { description = value; RaisePropertyChanged("Description"); }
        }

        private string publicationDate;
        [XmlElement("Publication_Date")]
        public string PublicationDate
        {
            get { return publicationDate; }
            set { publicationDate = value; }
        }

        private string completed;
        [XmlElement("Completed")]
        public string Completed
        {
            get { return completed; }
            set { completed = value; }
        }

        private string imageUrl;
        [XmlElement("imageURL")]
        public string ImageUrl
        {
            get { return imageUrl; }
            set { imageUrl = value; RaisePropertyChanged("ImageUrl"); }
        }

        private string backImageUrl;
        [XmlElement("backimageURL")]
        public string BackImageUrl
        {
            get { return backImageUrl; }
            set { backImageUrl = value; RaisePropertyChanged("BackImageUrl"); }
        }

        private string lastRead;
        [XmlElement("Last_Read")]
        public string LastRead
        {
            get { return lastRead; }
            set { lastRead = value; }
        }

        private string copyCount;
        [XmlElement("Number_of_Copies")]
        public string CopyCount
        {
            get { return copyCount; }
            set { copyCount = value; }
        }

        private string country;
        [XmlElement("Country")]
        public string Country
        {
            get { return country; }
            set { country = value; }
        }

        private string binding;
        [XmlElement("Binding")]
        public string Binding
        {
            get { return binding; }
            set { binding = value; }
        }

        private string purchasePrice;
        [XmlElement("Purchase_Price")]
        public string PurchasePrice
        {
            get { return purchasePrice; }
            set { purchasePrice = value; }
        }

        private string author;
        [XmlElement("Author")]
        public string Author
        {
            get { return author; }
            set { author = value; }
        }

        private string loanedTo;
        [XmlElement("Loaned_To")]
        public string LoanedTo
        {
            get { return loanedTo; }
            set { loanedTo = value; }
        }

        private string dateChanged;
        [XmlElement("datechanged")]
        public string DateChanged
        {
            get { return dateChanged; }
            set { dateChanged = value; }
        }

        private string synopsis;
        [XmlElement("Synopsis")]
        public string Synopsis
        {
            get { return synopsis; }
            set { synopsis = value; RaisePropertyChanged("Synopsis"); }
        }

        private string purchaseDate;
        [XmlElement("Purchase_Date")]
        public string PurchaseDate
        {
            get { return purchaseDate; }
            set { purchaseDate = value; }
        }

        private string editor;
        [XmlElement("Editor")]
        public string Editor
        {
            get { return editor; }
            set { editor = value; }
        }

        private string personalRating;
        [XmlElement("Personal_Rating")]
        public string PersonalRating
        {
            get { return personalRating; }
            set { personalRating = value; }
        }

        /*
        //private long isbn_RKD;
        //public long Isbn_RKD
        //{
        //    get { return isbn_RKD; }
        //    set { isbn_RKD = value; RaisePropertyChanged("Isbn_RKD"); }
        //}

        //private long barcode_RKD;
        //public long Barcode_RKD
        //{
        //    get { return barcode_RKD; }
        //    set { barcode_RKD = value; RaisePropertyChanged("Barcode_RKD"); }
        //}

        //private int pageCount_RKD;
        //public int PageCount_RKD
        //{
        //    get { return pageCount_RKD; }
        //    set { pageCount_RKD = value; RaisePropertyChanged("PageCount_RKD"); }
        //}

        //private Country publisherLocation_RKD;
        //public Country PublisherLocation_RKD
        //{
        //    get { return publisherLocation_RKD; }
        //    set { publisherLocation_RKD = value; RaisePropertyChanged("PublisherLocation_RKD"); }
        //}

        //private Country printingCountry_RKD;
        //public Country PrintingCountry_RKD
        //{
        //    get { return printingCountry_RKD; }
        //    set { printingCountry_RKD = value; RaisePropertyChanged("PrintingCountry_RKD"); }
        //}

        //private bool imageChanged_RKD;
        //public bool ImageChanged_RKD
        //{
        //    get { return imageChanged_RKD; }
        //    set { imageChanged_RKD = value; RaisePropertyChanged("ImageChanged_RKD"); }
        //}

        //private DateTime publicationDate_RKD;
        //public DateTime PublicationDate_RKD
        //{
        //    get { return publicationDate_RKD; }
        //    set { publicationDate_RKD = value; RaisePropertyChanged("PublicationDate_RKD"); }
        //}

        //private bool completed_RKD;
        //[XmlElement("Completed_RKD")]
        //public bool Completed_RKD
        //{
        //    get { return completed_RKD; }
        //    set { completed_RKD = value; RaisePropertyChanged("Completed_RKD"); }
        //}

        //private DateTime lastRead_RKD;
        //public DateTime LastRead_RKD
        //{
        //    get { return lastRead_RKD; }
        //    set { lastRead_RKD = value; RaisePropertyChanged("LastRead_RKD"); }
        //}

        //private int copyCount_RKD;
        //public int CopyCount_RKD
        //{
        //    get { return copyCount_RKD; }
        //    set { copyCount_RKD = value; RaisePropertyChanged("CopyCount_RKD"); }
        //}

        //private Country country_RKD;
        //public Country Country_RKD
        //{
        //    get { return country_RKD; }
        //    set { country_RKD = value; RaisePropertyChanged("Country_RKD"); }
        //}

        //private eBinding binding_RKD;
        //public eBinding Binding_RKD
        //{
        //    get { return binding_RKD; }
        //    set { binding_RKD = value; RaisePropertyChanged("Binding_RKD"); }
        //}

        //private Currency currency_RKD;
        //public Currency Currency_RKD
        //{
        //    get { return currency_RKD; }
        //    set { currency_RKD = value; RaisePropertyChanged("Currency_RKD"); }
        //}
        //
        //private decimal purchaseAmount_RKD;
        //public decimal PurchaseAmount_RKD
        //{
        //    get { return purchaseAmount_RKD; }
        //    set { purchaseAmount_RKD = value; RaisePropertyChanged("PurchaseAmount_RKD"); }
        //}

        //private Person author_RKD;
        //[XmlElement("Author")]
        //public Person Author_RKD
        //{
        //    get { return author_RKD; }
        //    set { author_RKD = value; RaisePropertyChanged("Author_RKD"); }
        //}

        //private Person loanedTo_RKD;
        //public Person LoanedTo_RKD
        //{
        //    get { return loanedTo_RKD; }
        //    set { loanedTo_RKD = value; RaisePropertyChanged("LoanedTo_RKD"); }
        //}

        //private DateTime dateChanged_RKD;
        //public DateTime DateChanged_RKD
        //{
        //    get { return dateChanged_RKD; }
        //    set { dateChanged_RKD = value; RaisePropertyChanged("DateChanged"); }
        //}

        //private DateTime purchaseDate_RKD;
        //public DateTime PurchaseDate_RKD
        //{
        //    get { return purchaseDate_RKD; }
        //    set { purchaseDate_RKD = value; RaisePropertyChanged("PurchaseDate"); }
        //}

        //private Person editor_RKD;
        //public Person Editor_RKD
        //{
        //    get { return editor_RKD; }
        //    set { editor_RKD = value; RaisePropertyChanged("Editor_RKD"); }
        //}

        //private int personalRating_RKD;
        //public int PersonalRating_RKD
        //{
        //    get { return personalRating_RKD; }
        //    set { personalRating_RKD = value; RaisePropertyChanged("PersonalRating"); }
        //}
        */
        #endregion Properties

        #region Methods
        public override string ToString()
        {
            return this.Title;
        }
        #endregion Methods

        /*

            <lockeditem></lockeditem>
    <backimagechanged></backimagechanged>
    <formatmod></formatmod>
    <itemID>929666</itemID>
    <Collection></Collection>

    <Custom></Custom>
    <Edition></Edition>
    <Type_of_Book></Type_of_Book>
    <Photos_By></Photos_By>

    <OCLC></OCLC>
    <Series></Series>
    <Narrative></Narrative>
    <bookid>929666</bookid>
    <lockedmain></lockedmain>
    
    <Number_of_Chapters></Number_of_Chapters>
    <Genre></Genre>
    <Typeset></Typeset>*/
    }
}
